package com.easy.common;





import com.easy.config.log.MyLog;
import com.easy.threads.entity.TaskParameter;

import java.util.logging.Level;

/**
 * 描述: 任务执行入口
 *
 * @author gwj
 * @date 2023年12月14日 14:31
 */

public interface IWork {


    /**
     * 描述 : 方法执行前
     * @author gwj
     * @date 2023/12/18 10:47
     */
    void doBefore();

    /**
     * 描述 : 方法执行
     * @author gwj
     * @date 2023/12/18 10:47
     */
    void execute();

    /**
     * 描述 : 方法执行后
     * @author gwj
     * @date 2023/12/18 10:47
     */
   default void doAfter(){
       String taskName = getTaskParameter().getTaskName();
       MyLog.getLogger().log(Level.INFO,"任务【{}】执行结束",taskName);
   }

    /**
     * 描述 : 获取任务执行参数
     * @author gwj
     * @date 2023/12/18 10:48
     * @return com.easy.threads.entity.TaskParameter
     */
    TaskParameter getTaskParameter();


    /**
     * 描述 : 设置任务参数
     * @author gwj
     * @date 2023/12/18 10:48
     * @param parameter 参数
     */
    void setTaskParameter(TaskParameter parameter);
}
